package org.mspring.mlog.duoshuo.sync;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;

import java.util.ArrayList;
import java.util.List;

/**
 * @author GaoYoubo
 * @since 2015/2/18
 */
public class SyncRequest {
    private String shortName; //站点注册的多说二级域名。注意：假如为http://apitest.duoshuo.com时，多说二级域名为apitest。
    private String secret; //站点密钥。
    private long sinceId; //同步开始的记录id，默认为0。请注意，since_id 为64位二进制整数，MySQL 数据类型建议定义为 bigInt。请单独保存已经同步的最后一个 last_log_id，作为下次的 since_id。注意，last_log_id 和评论的 post_id 并不是一个值，对于站长来说last_log_id仅用于记录下次获取log时的起始点。
    private int limit; //最大条数，范围1 ~ 200，默认值为50。
    private String order; //排序方式。asc：从旧到新；desc：从新到旧；默认为asc。

    public List<NameValuePair> buildParams() {
        List<NameValuePair> nvps = new ArrayList<>();
        nvps.add(new BasicNameValuePair("short_name", shortName));
        nvps.add(new BasicNameValuePair("secret", secret));
        nvps.add(new BasicNameValuePair("since_id", String.valueOf(sinceId)));
        nvps.add(new BasicNameValuePair("limit", String.valueOf(limit)));
        nvps.add(new BasicNameValuePair("order", order));
        return nvps;
    }

    @Override
    public String toString() {
        return "CallbackRequest{" +
                "shortName='" + shortName + '\'' +
                ", secret='" + secret + '\'' +
                ", sinceId=" + sinceId +
                ", limit=" + limit +
                ", order='" + order + '\'' +
                '}';
    }

    public String getShortName() {
        return shortName;
    }

    public void setShortName(String shortName) {
        this.shortName = shortName;
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public long getSinceId() {
        return sinceId;
    }

    public void setSinceId(long sinceId) {
        this.sinceId = sinceId;
    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        this.limit = limit;
    }

    public String getOrder() {
        return order;
    }

    public void setOrder(String order) {
        this.order = order;
    }
}
